//
//  CAIManager.h
//  Monster_Martial_Arts_Version_0
//
//  Created by chiawei.tseng on 13/1/14.
//
//

#ifndef Monster_Martial_Arts_Version_0_CAIManager_h
#define Monster_Martial_Arts_Version_0_CAIManager_h

#include <map>
#include "AIdef.h"
//#include "CBaseAI.h"
#include "GameState.h"


class CAiTimeInput : public IStateInput
{
public:
    
    CAiTimeInput(){}
    
    virtual ~CAiTimeInput(){}
    
    float dt;
};

class CAIBehavior;
class CBattleObject;
class CAIManager : public BaseFiniteStateMachine
{
    
public:
    
    CAIManager();
    
    virtual      ~CAIManager();
    
    void         Init(CBattleObject*);
    
    virtual void Update(IStateInput*);
    
    void         Release();
    
    virtual void JumpToState(const int nextSateID , IStateInput*);
    
protected:
    
    CBattleObject*      m_MyMaster;
    
private:
    
    CBattleObject* GetMyMaster(){return m_MyMaster;}
    
    friend class CAIBehavior;
};


#endif
